import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

public class MyBatisPlusGenerator {
    public static void main(String[] args) {

        // 数据库的表名
        String[] tableNames = new String[]{
                "equipment_video"
        };

        FastAutoGenerator.create("jdbc:mysql://rm-bp1yq4e0f9ie98h6b3o.mysql.rds.aliyuncs.com:3306/machinery_trade_platform",
                        "kjs", "88520Kjs")
                .globalConfig(builder -> {
                    builder.author("Xiaosong") // 设置作者
                            // 指定输出目录（必须是绝对路径）
                            //.outputDir("/Users/jane/Documents/软件工厂项目/202509月软件工厂/第3天_数据字典确认_分组/mybatisplus的代码生成器/codegenerator/src/main/java");
                            .outputDir("E:\\xm\\endXm\\S4-hou\\xm9-29\\service-kjs\\src\\main\\java");
                })
                .packageConfig(builder -> {
                    builder.parent("com.guigu") // 设置父包名
                            .moduleName("eduservice") // 设置模块名
                            .pathInfo(Collections.singletonMap(OutputFile.xml,
                                    "E:\\xm\\endXm\\S4-hou\\xm9-29\\service-kjs\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    // 设置需要生成的表名
                    builder.addInclude(tableNames)
                            .addTablePrefix("edu_")// 设置过滤表前缀
                            .entityBuilder()
                            .idType(IdType.ASSIGN_UUID) // 设置ID类型为UUID
                            .serviceBuilder()
                            .formatServiceFileName("%sService"); // 去掉Service接口的"I"前缀
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Velocity引擎模板，默认的是Freemarker引擎模板
                .execute();
    }
}
